namespace ext
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Basic Toolbar class. Although the {@link Ext.Container#defaultType defaultType} for Toolbar
	/// is {@link Ext.Button button}, Toolbar elements (child items for the Toolbar container) may
	/// be virtually any type of Component. Toolbar elements can be created explicitly via their constructors,
	/// or implicitly via their xtypes, and can be {@link #add}ed dynamically.  Some items have shortcut strings for creation:  ShortcutxtypeClassDescription
	/// &apos;-&gt;&apos; &apos;tbfill&apos; {@link Ext.Toolbar.Fill} begin using the right-justified button container
	/// &apos;-&apos; &apos;tbseparator&apos; {@link Ext.Toolbar.Separator} add a vertical separator bar between toolbar items
	/// &apos; &apos; &apos;tbspacer&apos; {@link Ext.Toolbar.Spacer} add horiztonal space between elements
	/// 
	///
	/// Example usage of various elements:
	/// 
	/// var tb = new Ext.Toolbar({
	/// renderTo: document.body,
	/// width: 600,
	/// height: 100,
	/// items: [
	/// {
	/// // xtype: &apos;button&apos;, // default for Toolbars, same as &apos;tbbutton&apos;
	/// text: &apos;Button&apos;
	/// },
	/// {
	/// xtype: &apos;splitbutton&apos;, // same as &apos;tbsplitbutton&apos;
	/// text:...
	/// </summary>
	/// <htmlSummary>
	/// &lt;p&gt;Basic Toolbar class. Although the &lt;tt&gt;{@link Ext.Container#defaultType defaultType}&lt;/tt&gt; for Toolbar
	/// is &lt;tt&gt;{@link Ext.Button button}&lt;/tt&gt;, Toolbar elements (child items for the Toolbar container) may
	/// be virtually any type of Component. Toolbar elements can be created explicitly via their constructors,
	/// or implicitly via their xtypes, and can be &lt;tt&gt;{@link #add}&lt;/tt&gt;ed dynamically.&lt;/p&gt;
	/// &lt;p&gt;Some items have shortcut strings for creation:&lt;/p&gt;
	/// &lt;pre&gt;
	/// &lt;u&gt;Shortcut&lt;/u&gt; &lt;u&gt;xtype&lt;/u&gt; &lt;u&gt;Class&lt;/u&gt; &lt;u&gt;Description&lt;/u&gt;
	/// &apos;-&gt;&apos; &apos;tbfill&apos; {@link Ext.Toolbar.Fill} begin using the right-justified button container
	/// &apos;-&apos; &apos;tbseparator&apos; {@link Ext.Toolbar.Separator} add a vertical separator bar between toolbar items
	/// &apos; &apos; &apos;tbspacer&apos; {@link Ext.Toolbar.Spacer} add horiztonal space between elements
	/// &lt;/pre&gt;
	///
	/// Example usage of various elements:
	/// &lt;pre&gt;&lt;code&gt;
	/// var tb = new Ext.Toolbar({
	/// renderTo: document.body,
	/// width: 600,
	/// height: 100,
	/// items: [
	/// {
	/// // xtype: &apos;button&apos;, // default for Toolbars, same as &apos;tbbutton&apos;
	/// text: &apos;Button&apos;
	/// },
	/// {
	/// xtype: &apos;splitbutton&apos;, // same as &apos;tbsplitbutton&apos;
	/// text: &apos;Split Button&apos;
	/// },
	/// // begin using the right-justified button container
	/// &apos;-&gt;&apos;, // same as {xtype: &apos;tbfill&apos;}, // Ext.Toolbar.Fill
	/// {
	/// xtype: &apos;textfield&apos;,
	/// name: &apos;field1&apos;,
	/// emptyText: &apos;enter search term&apos;
	/// },
	/// // add a vertical separator bar between toolbar items
	/// &apos;-&apos;, // same as {xtype: &apos;tbseparator&apos;} to create Ext.Toolbar.Separator
	/// &apos;text 1&apos;, // same as {xtype: &apos;tbtext&apos;, text: &apos;text1&apos;} to create Ext.Toolbar.TextItem
	/// {xtype: &apos;tbspacer&apos;},// same as &apos; &apos; to create Ext.Toolbar.Spacer
	/// &apos;text 2&apos;,
	/// {xtype: &apos;tbspacer&apos;, width: 50}, // add a 50px space
	/// &apos;text 3&apos;
	/// ]
	/// });
	/// &lt;/code&gt;&lt;/pre&gt;
	/// Example adding a ComboBox within a menu of a button:
	/// &lt;pre&gt;&lt;code&gt;
	/// // ComboBox creation
	/// var combo = new Ext.form.ComboBox({
	/// store: new Ext.data.ArrayStore({
	/// autoDestroy: true,
	/// fields: [&apos;initials&apos;, &apos;fullname&apos;],
	/// data : [
	/// [&apos;FF&apos;, &apos;Fred Flintstone&apos;],
	/// [&apos;BR&apos;, &apos;Barney Rubble&apos;]
	/// ]
	/// }),
	/// displayField: &apos;fullname&apos;,
	/// typeAhead: true,
	/// mode: &apos;local&apos;,
	/// forceSelection: true,
	/// triggerAction: &apos;all&apos;,
	/// emptyText: &apos;Select a name...&apos;,
	/// selectOnFocus: true,
	/// width: 135,
	/// getListParent: function() {
	/// return this.el.up(&apos;.x-menu&apos;);
	/// },
	/// iconCls: &apos;no-icon&apos; //use iconCls if placing within menu to shift to right side of menu
	/// });
	///
	/// // put ComboBox in a Menu
	/// var menu = new Ext.menu.Menu({
	/// id: &apos;mainMenu&apos;,
	/// items: [
	/// combo // A Field in a Menu
	/// ]
	/// });
	///
	/// // add a Button with the menu
	/// tb.add({
	/// text:&apos;Button w/ Menu&apos;,
	/// menu: menu // assign menu by instance
	/// });
	/// tb.doLayout();
	/// &lt;/code&gt;&lt;/pre&gt;
	/// </htmlSummary>
	/// <definedin>src\widgets\Toolbar.js</definedin>
	[ScriptName("Toolbar")]
	[ScriptNamespace("Ext")]
	[Imported()]
	public partial class Toolbar : ext.Container
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">A config object or an array of buttons to &lt;tt&gt;{@link #add}&lt;/tt&gt;</param>
		public Toolbar(ext.Toolbar_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		/// <param name="config">A config object or an array of buttons to &lt;tt&gt;{@link #add}&lt;/tt&gt;</param>
		public Toolbar(System.Array config)
		{
		}
		
		/// <summary>Constructor</summary>
		public Toolbar()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// This class assigns a default layout (layout:&apos;toolbar&apos;).
		/// Developers may override this configuration option if another layout
		/// is required (the constructor must be passed a configuration object in this
		/// case instead of an array).
		/// See {@link Ext.Container#layout} for additional information.
		/// </summary>
		/// <htmlSummary>
		/// This class assigns a default layout (&lt;code&gt;layout:&apos;&lt;b&gt;toolbar&lt;/b&gt;&apos;&lt;/code&gt;).
		/// Developers &lt;i&gt;may&lt;/i&gt; override this configuration option if another layout
		/// is required (the constructor must be passed a configuration object in this
		/// case instead of an array).
		/// See {@link Ext.Container#layout} for additional information.
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		[ScriptName("layout")]
		public ext.auto.System_String_Or_System_Object Layout;
		
		/// <summary>
		/// Defaults to false. Configure true to make the toolbar provide a button
		/// which activates a dropdown Menu to show items which overflow the Toolbar&apos;s width.
		/// </summary>
		/// <htmlSummary>
		/// Defaults to false. Configure &lt;tt&gt;true&lt;/tt&gt; to make the toolbar provide a button
		/// which activates a dropdown Menu to show items which overflow the Toolbar&apos;s width.
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		[ScriptName("enableOverflow")]
		public bool EnableOverflow;
		
		/// <summary>
		/// The default position at which to align child items. Defaults to &quot;left&quot;  May be specified as &quot;center&quot; to cause items added before a Fill (A &quot;-&gt;&quot;) item
		/// to be centered in the Toolbar. Items added after a Fill are still right-aligned.  Specify as &quot;right&quot; to right align all child items.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;The default position at which to align child items. Defaults to &lt;code&gt;&quot;left&quot;&lt;/code&gt;&lt;/p&gt;
		/// &lt;p&gt;May be specified as &lt;code&gt;&quot;center&quot;&lt;/code&gt; to cause items added before a Fill (A &lt;code&gt;&quot;-&gt;&quot;&lt;/code&gt;) item
		/// to be centered in the Toolbar. Items added after a Fill are still right-aligned.&lt;/p&gt;
		/// &lt;p&gt;Specify as &lt;code&gt;&quot;right&quot;&lt;/code&gt; to right align all child items.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		[ScriptName("buttonAlign")]
		public string ButtonAlign;
		
		/// <summary>Fires after the overflow state has changed.</summary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		[ScriptName("overflowchangeEventName")]
		public const string OverflowchangeEventName = "overflowchange";
		#endregion
		
		#region Methods
		/// <summary>Adds a separator</summary>
		/// <htmlSummary>
		/// Adds a separator
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <returns>The separator {@link Ext.Toolbar.Item item}</returns>
		[ScriptName("addSeparator")]
		public ext.Toolbar_Item AddSeparator()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Adds a spacer element</summary>
		/// <htmlSummary>
		/// Adds a spacer element
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <returns>The spacer item</returns>
		[ScriptName("addSpacer")]
		public ext.Toolbar_Spacer AddSpacer()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Forces subsequent additions into the float:right toolbar</summary>
		/// <htmlSummary>
		/// Forces subsequent additions into the float:right toolbar
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		[ScriptName("addFill")]
		public void AddFill()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Adds any standard HTML element to the toolbar</summary>
		/// <htmlSummary>
		/// Adds any standard HTML element to the toolbar
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="el">The element or id of the element to add</param>
		/// <returns>The element&apos;s item</returns>
		[ScriptName("addElement")]
		public ext.Toolbar_Item AddElement(object el)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Adds any Toolbar.Item or subclass</summary>
		/// <htmlSummary>
		/// Adds any Toolbar.Item or subclass
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="item"></param>
		/// <returns>The item</returns>
		[ScriptName("addItem")]
		public ext.Toolbar_Item AddItem(ext.Toolbar_Item item)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Adds text to the toolbar</summary>
		/// <htmlSummary>
		/// Adds text to the toolbar
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="text">The text to add</param>
		/// <returns>The element&apos;s item</returns>
		[ScriptName("addText")]
		public ext.Toolbar_Item AddText(string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Adds a new element to the toolbar from the passed {@link Ext.DomHelper} config</summary>
		/// <htmlSummary>
		/// Adds a new element to the toolbar from the passed {@link Ext.DomHelper} config
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="config"></param>
		/// <returns>The element&apos;s item</returns>
		[ScriptName("addDom")]
		public ext.Toolbar_Item AddDom(object config)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Adds a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have
		/// been rendered yet. For a field that has already been rendered, use {@link #addElement}.
		/// </summary>
		/// <htmlSummary>
		/// Adds a dynamically rendered Ext.form field (TextField, ComboBox, etc). Note: the field should not have
		/// been rendered yet. For a field that has already been rendered, use {@link #addElement}.
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="field"></param>
		[ScriptName("addField")]
		public ext.Toolbar_Item AddField(ext.form.Field field)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Adds element(s) to the toolbar -- this function takes a variable number of
		/// arguments of mixed type and adds them to the toolbar.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Adds element(s) to the toolbar -- this function takes a variable number of
		/// arguments of mixed type and adds them to the toolbar.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="args">
		/// The following types of arguments are all valid:&lt;br /&gt;
		/// &lt;ul&gt;
		/// &lt;li&gt;{@link Ext.Button} config: A valid button config object (equivalent to {@link #addButton})&lt;/li&gt;
		/// &lt;li&gt;HtmlElement: Any standard HTML element (equivalent to {@link #addElement})&lt;/li&gt;
		/// &lt;li&gt;Field: Any form field (equivalent to {@link #addField})&lt;/li&gt;
		/// &lt;li&gt;Item: Any subclass of {@link Ext.Toolbar.Item} (equivalent to {@link #addItem})&lt;/li&gt;
		/// &lt;li&gt;String: Any generic string (gets wrapped in a {@link Ext.Toolbar.TextItem}, equivalent to {@link #addText}).
		/// Note that there are a few special strings that are treated differently as explained next.&lt;/li&gt;
		/// &lt;li&gt;&apos;-&apos;: Creates a separator element (equivalent to {@link #addSeparator})&lt;/li&gt;
		/// &lt;li&gt;&apos; &apos;: Creates a spacer element (equivalent to {@link #addSpacer})&lt;/li&gt;
		/// &lt;li&gt;&apos;-&gt;&apos;: Creates a fill element (equivalent to {@link #addFill})&lt;/li&gt;
		/// &lt;/ul&gt;
		/// </param>
		[ScriptName("add")]
		public void Add(params object[] args)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Adds element(s) to the toolbar -- this function takes a variable number of
		/// arguments of mixed type and adds them to the toolbar.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Adds element(s) to the toolbar -- this function takes a variable number of
		/// arguments of mixed type and adds them to the toolbar.&lt;/p&gt;
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		[ScriptName("add")]
		public void Add()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Adds a button (or buttons). See {@link Ext.Button} for more info on the config.</summary>
		/// <htmlSummary>
		/// Adds a button (or buttons). See {@link Ext.Button} for more info on the config.
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="config">A button config or array of configs</param>
		[ScriptName("addButton")]
		public ext.auto.ext_Button_Or_System_Array AddButton(object config)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Adds a button (or buttons). See {@link Ext.Button} for more info on the config.</summary>
		/// <htmlSummary>
		/// Adds a button (or buttons). See {@link Ext.Button} for more info on the config.
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="config">A button config or array of configs</param>
		[ScriptName("addButton")]
		public ext.auto.ext_Button_Or_System_Array AddButton(System.Array config)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.</summary>
		/// <htmlSummary>
		/// Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="index">The index where the item is to be inserted</param>
		/// <param name="item">
		/// The button, or button config object to be
		/// inserted, or an array of buttons/configs.
		/// </param>
		[ScriptName("insertButton")]
		public ext.auto.ext_Button_Or_ext_Toolbar_Item InsertButton(System.Number index, object item)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.</summary>
		/// <htmlSummary>
		/// Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="index">The index where the item is to be inserted</param>
		/// <param name="item">
		/// The button, or button config object to be
		/// inserted, or an array of buttons/configs.
		/// </param>
		[ScriptName("insertButton")]
		public ext.auto.ext_Button_Or_ext_Toolbar_Item InsertButton(System.Number index, ext.Toolbar_Item item)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.</summary>
		/// <htmlSummary>
		/// Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="index">The index where the item is to be inserted</param>
		/// <param name="item">
		/// The button, or button config object to be
		/// inserted, or an array of buttons/configs.
		/// </param>
		[ScriptName("insertButton")]
		public ext.auto.ext_Button_Or_ext_Toolbar_Item InsertButton(System.Number index, ext.Button item)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.</summary>
		/// <htmlSummary>
		/// Inserts any {@link Ext.Toolbar.Item}/{@link Ext.Button} at the specified index.
		/// &lt;br&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: See the notes within {@link Ext.Container#add}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		/// <param name="index">The index where the item is to be inserted</param>
		/// <param name="item">
		/// The button, or button config object to be
		/// inserted, or an array of buttons/configs.
		/// </param>
		[ScriptName("insertButton")]
		public ext.auto.ext_Button_Or_ext_Toolbar_Item InsertButton(System.Number index, System.Array item)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires after the overflow state has changed.</summary>
		/// <definedin>src\widgets\Toolbar.js</definedin>
		[ScriptName("overflowchange")]
		public event ext.auto.Delegate_System_Object_And_System_Boolean Overflowchange;
		#endregion
	}
}
